// 矩阵快速幂 斐波那契数列
// 测试链接 ：https://www.luogu.com.cn/problem/P1962
// 相关帖子 ：https://www.cnblogs.com/dx123/p/16671128.html
// 相关帖子 ：https://oi-wiki.org/math/linear-algebra/matrix/#%E7%9F%A9%E9%98%B5%E5%8A%A0%E9%80%9F%E9%80%92%E6%8E%A8
// 提交以下的code，可以直接通过

#include <bits/stdc++.h>

using namespace std;

#define ll long long
const int MOD = 1000000007;

struct matrix
{
    ll c[3][3];

    matrix() { memset(c, 0, sizeof c); }
}F, A; // F 为 斐波那契矩阵，A 为构造矩阵

matrix operator*(matrix& a, matrix& b)
{
    matrix ans; // 临时矩阵
    for(int i = 1; i <= 2; ++i)
    {
        for(int k = 1; k <= 2; ++k)
        {
            for(int j = 1; j <= 2; ++j)
            {
                ans.c[i][j] = (ans.c[i][j] + a.c[i][k] * b.c[k][j]) % MOD;
            }
        }
    }
    return ans;
}

// 快速幂
void quickPow(ll n)
{
    // A [1, 1]
    //   [1, 0]
    // [F2, F1] * A^(n - 2) = [Fn, F(n-1)]
    F.c[1][1] = F.c[1][2] = 1;
    A.c[1][1] = A.c[1][2] = A.c[2][1] = 1;
    while(n)
    {
        if(n & 1) F = F * A;
        A = A * A;
        n >>= 1;
    }
}

int main()
{
    ll n;
    scanf("%lld", &n);
    if(n <= 2) puts("1");
    else
    {
        quickPow(n - 2);
        printf("%d\n", F.c[1][1]);
    }

    return 0;
}